from bookDAL import BookDAL
from bookModel import Book
import datetime
import pymysql


# 全局变量
# 图书数据访问层对象
bookDal = BookDAL()
menu = """
-------------图书管理系统-----------------
===========功能菜单===========
1 录入图书类型信息
2 修改图书类型信息
3 删除图书类型信息
4 显示所有图书类型信息
0 退出系统
=============================
"""

if __name__ == '__main__':
    while True:
        try:
            print(menu)
            choice = input("请输入选项：")
            if choice == '1':
                id = input("请输入图书类型编号：")
                title = input("请输入图书类型名称：")
                autor = input("请输入图书类型作者：")
                publisher = input("请输入图书类型出版社：")
                price = input("请输入图书类型价格：")
                book = Book(id, title, autor, publisher, price)
                result = bookDal.addBook(book)
                if result > 0:
                    print("图书类型信息录入成功！")
                else:
                    print("图书类型信息录入失败！")
            elif choice == '2':
                modId = input("请输入需要修改的图书类型编号：")
                result = bookDal.selectBookById(modId)
                print("编号 名称 作者 出版社 价格 创建时间")
                print(result[0], result[1], result[2], result[3], result[4], datetime.datetime.strftime(result[5], '%Y年%m月%d日'))
                newTitle = input("请输入新的图书类型名称：")
                newAutor = input("请输入新的图书类型作者：")
                newPublisher = input("请输入新的图书类型出版社：")
                newPrice = input("请输入新的图书类型价格：")
                book = Book(modId, newTitle, newAutor, newPublisher, newPrice)
                result = bookDal.updateBook(book)
                if result > 0:
                    print("图书类型信息修改成功！")
                else:
                    print("图书类型信息修改失败！")
            elif choice == '3':
                delId = input("请输入需要删除的图书类型编号：")
                result = bookDal.selectBookById(delId)
                if result is None:
                    print("图书类型不存在！")
                else:
                    print("编号 名称 作者 出版社 价格 创建时间")
                    print(result[0], result[1], result[2], result[3], result[4], datetime.datetime.strftime(result[5], '%Y年%m月%d日'))
                    delKey = input("确认要删除该图书类型信息吗？(y/n)：")
                    if delKey == 'y' or delKey == 'Y':
                        result1 = bookDal.delBook(delId)
                    else:
                        print("图书类型信息删除取消！")
                        continue
                    if result1 > 0:
                        print("图书类型信息删除成功！")
                    else:
                        print("图书类型信息删除失败！")
            elif choice == '4':
                result = bookDal.selectAllBook()
                for i in result:
                    print("图书类型编号：", i[0], "图书类型名称：", i[1], "图书类型作者：", i[2], "图书类型出版社：", i[3], "图书类型价格：", i[4], "图书类型创建时间：", datetime.datetime.strftime(i[5], '%Y年%m月%d日'))
            elif choice == '0':
                exitKey = input("确认要退出系统吗？(y/n)：")
                if exitKey == 'y' or exitKey == 'Y':
                    print("欢迎下次光临！")
                    break
            else:
                print("输入错误，请重新输入！")
                continue
        except pymysql.err.OperationalError:
            print("输入数据有误，请重新确认！")
        except pymysql.err.IntegrityError:
            print("输入的书籍编号已存在，请重新输入！")
        except pymysql.err.DataError:
            print("输入的价格格式有误，请重新输入！")
        except Exception as e:
            print("系统异常：" + str(e))
            
